package com.suli.multimedia.service;

import com.suli.multimedia.entity.Scenic;
import com.baomidou.mybatisplus.extension.service.IService;
import com.suli.multimedia.enums.ScenicType;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author SuLi
 * @since 2022-03-29
 */
public interface ScenicService extends IService<Scenic> {
    /**
     * 分页获取景点
     * @param page 页码
     * @param limit 数量
     * @return 景丹列表
     */
    Map<String,Object> getScenic(Long page,Long limit);

    /**
     * 分页获取景点带配图
     * @param page 页码
     * @param limit 数量
     * @return 景点列表
     */
    Map<String,Object> getScenicAndImage(Long page,Long limit);

    /**
     * 根据景点名称模糊查找景点
     * @param name 景点名称
     * @return 景点列表
     */
    Map<String,Object> searchScenicByName(String name);

    /**
     * 根据景点名称模糊查找景点(带图片)
     * @param name 景点名称
     * @return 景点列表
     */
    Map<String,Object> searchScenicAndImage(Long page,Long limit,String name);

    /**
     * 根据景点类型获取景点
     * @param page 页码
     * @param limit 数量
     * @param type 景点类型
     * @return 景点列表
     */
    Map<String,Object> searchScenicImageBType(Long page, Long limit, String type);

    /**
     * 从被逻辑删除的景点中分页查找景点
     * @return 景点列表
     */
    Map<String,Object> getScenicDeleted(Long page,Long limit);

    /**
     * 批量还原景点
     * @param ids 景点集合
     * @return 还原结果
     */
    boolean recovery(List<String> ids);

    /**
     * 批量永久删除景点
     * @param ids 景点集合
     */
    void deleteScenic(List<String>  ids);

    void deleteTicket();
}
